package br.com.officium.managedbean.cadastro;

import br.com.officium.entidade.cadastro.ClienteFisico;
import br.com.officium.sessionbean.ClienteFisicoBsn;
import br.com.officium.util.BeanUtil;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author Ivo
 */
@ManagedBean
@ViewScoped
public class ClienteFisicoBean extends CadastroAbstractBean {

    @EJB
    private ClienteFisicoBsn clienteBsn;
    private ClienteFisico cliente;
    private List<ClienteFisico> clientes;
    
    private String sexo, estadoCivil;

    public ClienteFisicoBean() {
        this.cliente = new ClienteFisico();
    }

    @Override
    public String listar() {
        setCurrentState(LISTAR_STATE);
        clientes = clienteBsn.findAll();
        return "/cadastro/clienteFisico.jsf";
    }

    @Override
    public void cadastrar() {

        try {
            clienteBsn.create(cliente);
            clear();
            BeanUtil.addInfo("Cliente Físico criado com sucesso.");
            clientes = clienteBsn.findAll();
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    @Override
    public void editar() {

        try {
            clienteBsn.edit(cliente);
            clear();
            setCurrentState(LISTAR_STATE);
            BeanUtil.addInfo("Cliente Físico alterado com sucesso.");
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    @Override
    public void excluir() {

        try {
            clienteBsn.remove(cliente);
            BeanUtil.addInfo("Cliente Físico removido com sucesso.");
            clientes = clienteBsn.findAll();
        } catch (Exception e) {
            BeanUtil.addError(e.getMessage());
        }

    }

    private void clear() {
        this.cliente = new ClienteFisico();
        super.cleanSubmittedValues(panelForm);
    }

   public ClienteFisico getCliente() {
        return cliente;
    }

    public void setCliente(ClienteFisico cliente) {
        this.cliente = cliente;
    }

    public List<ClienteFisico> getClientes() {
        return clientes;
    }

    public void setClientes(List<ClienteFisico> clientes) {
        this.clientes = clientes;
    }

    public String getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil(String estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

}
